package br.com.controle;

import java.awt.Graphics2D;
import java.awt.event.KeyEvent;

import br.com.componentes.SpriteFont;
import br.com.input.Action;
import br.com.input.TecladoAdapter;
import br.com.menu.Menu;

public class Controle
{
	Game game;
	TecladoAdapter teclado = new TecladoAdapter( );
	
	static final int ENTRADA  = 1;
	static final int PAUSE    = 2;
	static final int RODANDO  = 3;
	static final int GAMEOVER = 4;
	
	int ESTADO = ENTRADA;
	
	SpriteFont spEntrada  = new SpriteFont( );
	SpriteFont spPause    = new SpriteFont( );
	SpriteFont spRodando  = new SpriteFont( );
	SpriteFont spGameover = new SpriteFont( );
	
	Menu menu = new Menu( );
	
	public void setup( Game game )
	{
		this.game = game;
		
		spEntrada.setTexto ( "MENU INICIAL" );
		spPause.setTexto   ( "JOGO PAUSADO" );
		spRodando.setTexto ( "GAME PLAY"    );
		spGameover.setTexto( "GAME OVER"    );
		
		menu.setup();
		
		defineEventos( );
	}

	public void update( long time )
	{
		switch( ESTADO ) 
		{
			case ENTRADA:
				menu.update(time);
				break;
			case PAUSE:
				spPause.update(time);
				break;
			case RODANDO:
				spRodando.update(time);
				break;
			case GAMEOVER:
				spGameover.update(time);
				break;
		}
	}

	public void draw( Graphics2D g ) 
	{
		switch( ESTADO ) 
		{
			case ENTRADA:
				menu.draw(g);
				break;
			case PAUSE:
				spPause.draw(g);
				break;
			case RODANDO:
				spRodando.draw(g);
				break;
			case GAMEOVER:
				spGameover.draw(g);
				break;
		}
	}
	
	private void defineEventos( )
	{
		game.addKeyListener( teclado );
		
		teclado.addOnkeyPressed( new Action( )
		{
			public void executa( )
			{
				if( teclado.isPressed(KeyEvent.VK_UP) )
				{
					if( --menu.itemSelecionado > 4 )
						menu.itemSelecionado = 1;
				}
				else if( teclado.isPressed(KeyEvent.VK_DOWN) )
				{
					if( ++menu.itemSelecionado > 4 )
						menu.itemSelecionado = 1;
				}
				else if( teclado.isPressed(KeyEvent.VK_ENTER) )
				{
					if(menu.itemSelecionado == 4)
						System.exit(0);
				}
			}
		} );
		
		teclado.addOnkeyPressed( new Action( )
		{
			public void executa( )
			{
				
			}
		} );
	}
}